It is inevitable that future wireless services will support Internet Protocol (IP)-based multimedia applications. For example, current and emerging wireless networks allow (i) a user to download information from the Internet using a wireless communication device, (ii) Internet-to-mobile or mobile-to-mobile videoconferences, (iii) streaming of video or audio information (or both) from the Internet to a wireless communication device, and (iv) electronic-commerce applications. In general, the multimedia services can be classified into two categories. Real-time services generally have delay constraints but can tolerate channel errors, and include interactive services, such as voice, voice-over-IP, packet video/audio, videoconference applications. Non-real-time services, on the other hand, are generally sensitive to channel errors but have more relaxed latency requirements, and include Web browsing, electronic mail and file transfer protocol (FTP) applications. It is noted, however, that non-real-time services for wireless systems should still provide a reasonable level of latency in order to be compatible with performance on a wired network, such as the Internet.
The end-to-end path of many wireless multimedia sessions, such as an Internet-to-mobile communication, involves a number of heterogeneous network technologies, with the multimedia packets being sent from an originating server, through the Internet and then over one or more wireless packet networks to the mobile destination. Network congestion on the Internet leads to packet loss and degraded quality. Thus, most Internet-based real-time multimedia services employ the well-known User Datagram Protocol (UDP) as their transport protocol. Compared to the Transmission Control Protocol (TCP), the UDP protocol has low overhead and no retransmission delay, which makes it attractive to delay sensitive applications.
A UDP packet typically includes a header, containing source and destination address information, as well as a payload (the actual application data). The UDP protocol employs a cyclic redundancy check (CRC) to verify the integrity of packets, in a known manner. The UDP protocol can detect any error in the packet header or payload and discard the packet if an error is detected. Packet transmission based on the UDP protocol on the Internet is a “best efforts” protocol, where network congestion yields packet loss. When a packet fails to arrive before its processing time, the UDP protocol declares the packet as lost. Therefore, at the receiving host, packets are either perfect or completely lost.
Wireless packet networks encounter packet losses between a base station and a mobile receiver as a result of channel errors and network congestion. Furthermore, such packet losses can be random or bursty, depending on the environment, rate-of-motion and network loading. Therefore, it has been recognized that use of the UDP protocol in a wireless network will cause considerable packet losses, and as a result, poor audio/video quality and increased power consumption. The inefficiency of the UDP protocol in wireless networks arises from the discarding of a packet containing only a small portion of corrupted data. As such, the UDP protocol also discards error-free data within the packet. Indeed, current and emerging multimedia coding technologies are focusing on improved error resilience, such that the media decoder can tolerate a certain number of channel errors. Thus, a need exists for a revised UDP protocol that reduces or avoids unnecessary packet discarding.
When wireless channels have a fairly high bit error rate, packet-level forward error correction (FEC) coding techniques, such as those described in R. Blahut, Theory and Practice of Error Control Codes (Addison-Wesley, 1983), provide an effective way to mitigate channel unreliability and improve media quality. Typically, FEC techniques apply Maximal Distance Separable (MDS) codes, such as Reed-Solomon (RS) codes, across the packets to recover lost packets. Generally, an FEC encoder typically chooses k information packets and generates n-k parity packets of length n to construct an (n, k) RS code. For IP transmission, the packets are numbered and are assumed to arrive perfectly or never arrive at all. The missing packets can be detected by the receiver and declared as erasure packets. An (n, k) RS code can correct (n-k) erasures and thus recover up to (n-k) packet losses.
In a wireless network employing the UDP protocol, an FEC decoder would use only the packets that were received perfectly, and lost packets are considered erasures. However, the UDP protocol yields high packet loss rates even under low and medium physical layer data losses. Therefore, the (n-k) value employed by the FEC encoder should be sufficiently large to effectively reduce the packet loss, which implies increased overhead and less efficiency. On the other hand, in a wireless network employing the UDP Lite protocol, which performs a checksum based on the packet header, so that only corrupted packet headers result in packet loss, the FEC decoder may receive perfect or corrupted packets, and performs both error and erasure correction. Since MDS codes provide twice the erasure recovering capability compared to error correction capability, an (n, k) packet code can recover up to (n-k)/2 erroneous packets within every n packets.